package com.zingrow.web.configure.iformation.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.zingrow.web.configure.iformation.model.Iformation;
import com.zingrow.web.customer.model.GroupScheme;



public interface IformationMapper {
	
	/**
	 * 
	 **/
	Integer selectGroupId(Integer ifm_id);
	
	/**
     * 通过方案id查询方案名称
     * APP操作日志使用
     */
	String ifmNamebyifmId(String ifmId);
	
	/**
     * 通过方案id查询类别名称
     * APP操作日志使用
     */
	String appselectbyifmId (String ifmId);

    /**
     * 通过参数模糊查询（分页）
     * 
     * @param map
     * @return
     */
    List<Iformation> queryByParams(Map<String, Object> map);
    
    

    /**
     * 新增
     * 
     * @param iformation
     * @return
     */
    int addIformation(Iformation iformation);
        
    
    /*
     * 判断同一个组织内同一个类别只允许一个类别名称
     * 
     * */
    Iformation selectIfm_categoryNameByGroupId(Map<String, Object> map);
    //通过类别名称查询类别
    
    Iformation selectNameBycategory(Iformation iformation);
    
    /**
     * 修改
     * 
     * @param iformation
     * @return
     */
    int modifyIformation(Iformation iformation);
    /**
     * 修改2
     * 修改组织方案表中的方案类别名称
     * @param iformation
     * @return
     */
    int modifyIformation2(Map<String, Object> map);
    
    /**
     * 修改3
     * 修改时没有方案类别 根据方案id与组织id修改类别与类别名称
     * @param iformation
     * @return
     */
    int modifyIformation3(Iformation iformation);
   /*
    * * 根据主键修改信息4—— 根据方案id组织id类别修改类别名称-->
    */
    int modifyIformation4(Map<String, Object> map);
    /**
     * 通过ID删除
     * 
     * @param ifm_id
     * @return
     */
    int deleteByid(@Param("ifm_id") Integer ifm_id);


    /**
     * 同名查询判段
     * 
     * @param ifm_name
     * @param ifm_id
     * @return
     */
    int selectSameByifmName(Map<String, Object> map);
    
    
    /* 单个查询*/
    Iformation queryByID(@Param("ifm_id") Integer ifm_id);

    /**
     * 单个查询2
     * 
     * @param ifm_id
     * @return
     * @param group_id
     */
    Iformation queryByID2(@Param("ifm_id") Integer ifm_id,@Param("group_id")Integer group_id);
    
    /**
     * 通过ID集合 返回 方案集合
     * @param idList
     * @return
     */
    List<GroupScheme> queryByIDList(List<String> idList);
    
    /**
     * 根据用户ID获取对应的所有栏目
     */
    List<Iformation> queryIformationByUserName(@Param("user_account")String user_account);
    /**
     * 通过参数模糊查询（分页）组织接口
     * 
     * @param map
     * @return
     */
    List<Iformation> queryByParamsNN(Map<String, Object> map);
    
    /**
     * 通过参数查询所有     组织接口
     * @param map
     * @return
     */
    List<Iformation> queryBymg(Map<String,Object> map);
    /**
     * 根据方案id查询方案名称   APP接口
     * @param list
     * @return
     */
    List<Iformation> selectId(List<String> list);
    
    List<Iformation> selectlistId(List<String> list);
    
    //查询类别下的所有方案
    List<Iformation> selectAllIfm(List<String>  categpryName);
   
    /*根据组织id查询数据*/
    
    List<Iformation> selectAllByGroupid(Integer groupId);
    
    /*根据组织id查询类别名称*/
    List<Iformation>  selectCategoryNameByGroupid(Integer groupId);
    /**
     * 获取所有方案的ID
     * @return
     */
    List<Integer> getAllId();
    /**
     * 根据信息查询当前新增方案ID
     * @return
     */
    Iformation selectbyname(@Param("ifm_name") String ifm_name,@Param("ifm_note") String ifm_note,@Param("ifm_getKeyword") String ifm_getKeyword);
    /**
     * 根据信息查询资源频道
     * @return
     */
    Iformation selectgetchannel(@Param("ifm_id") int ifm_id);
    
    List<Iformation> selectcheck(@Param("group_id") int group_id);
}
